#pragma  once
//定义几个常数

#define RED 1//对战双方整数
#define BLUE -1//对战双方整数
#define EMPTY 0
#define EDGE 10
#define BOX 20
#define RED_EDGE 1
#define BLUE_EDGE -1
#define RED_BOX 2
#define BLUE_BOX -2

//定义大小
#define LENGTH 11			//LEN为数组的长度，正常为格子数X2+1
#define MOVENUM 60		//MOVENUM为最大招式的大小，
#define BOXNUM 25		//总格子数
#define BOXLEN 5		//格子数组长度

//定义格子类型
#define FULLBOX	0		//满格
#define DEADBOX 1		//死格
#define CHAINBOX 2		//链格
#define FREEBOX 3		//自由格

//TURN类用于表示一个新的回合，里面包含了新回合的局面以及所落的招法
class TURN;
class QiPan{
    public:
    int qiPan[LENGTH][LENGTH];
	int step;

	QiPan();//构造函数
	
	void Print();								//显示函数1
	void Show();								//显示函数2
bool Move(int x,int y,int SIDE);
int  GetBoxLiberties(int x,int y);
bool GetEdgeLegality(int x,int y);
};
bool NumEven(int n);
bool NumOdd(int n);